-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Correctly document CTFE behavior of is_null and methods that call is_null. #134325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Cc @RalfJung |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small wording nit. However I feel like this is also unnecessarily wordy, it kind of says the same thing (might panic for OOB pointers) twice in two paragraphs.
r? @RalfJung |
6ab68d8
to
f5d0592
Compare
I have rewritten the comment to be hopefully easier to understand. Hopefully this wording doesn't commit rust to any guarantees that we don't want to make? |
The "panic in const if CTFE doesn't know the answer" behavior was discussed to be the desired behavior in rust-lang#74939, and is currently how the function actually behaves. I intentionally wrote this documentation to allow for the possibility that a panic might not occur even if the pointer is out of bounds, because of rust-lang#133700 and other potential changes in the future.
f5d0592
to
9388917
Compare
I have applied RalfJung's proposed wording changes. I've also edited the "Behavior during const evaluation" heading to "Panics during const evaluation", and made it a level 1 heading, to match the typical "Panics" heading. Does this need a beta backport, since the is_null methods are const-stabilized in beta? |
There are a bunch of |
LGTM, thanks :) @bors r+ rollup |
The "panic in const if CTFE doesn't know the answer" behavior was discussed to be the desired behavior in #74939, and is currently how the function actually behaves.
I intentionally wrote this documentation to allow for the possibility that a panic might not occur even if the pointer is out of bounds, because of #133700 and other potential changes in the future.
This is beta-nominated since
const fn is_null
stabilization is in beta already but the docs there are wrong, and it seems better to have the docs be correct at the time of stabilization.